package CodeTwo;

import java.util.Scanner;

/** @author ASUS */
public class Subnetjudgment {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String n;
    // 分别用于存储子网掩码和两个地址
    int[][] a = new int[3][4];
    // 都由4个整型数字表示
    // 转化为二进制字符串后
    String[] b = new String[3];
    b[0] = "";
    b[1] = "";
    b[2] = "";
    // 分别AND运算后
    String[] c = new String[2];
    c[0] = "";
    c[1] = "";

    int count = 3;
    for (int i = 0; i < count; i++) {
      n = scan.next();
      int len = n.length();
      int num1 = 0;
      for (int j = 0; j < count; j++) {
        // 从num1开始找“.”的索引 [注意从num1开始寻找]
        int num2 = n.indexOf('.', num1);
        // 截取数字
        String str1 = n.substring(num1, num2);
        num1 = num2 + 1;
        // 字符串转化为整数
        a[i][j] = Integer.parseInt(str1);
        // 将十进制整数转化为二进制形式（字符串）
        String str3 = Integer.toBinaryString(a[i][j]);
        // 将字符串转化为整数
        int num3 = Integer.parseInt(str3);
        // 0 代表前面补充0
        // 8代表长度为8
        // d 代表参数为正数型
        b[i] += String.format("%08d", num3);
      }
      // 获取最后.到结束的字符串
      String str2 = n.substring(num1, len);
      a[i][3] = Integer.parseInt(str2);
      String str3 = Integer.toBinaryString(a[i][3]);
      int num3 = Integer.parseInt(str3);
      b[i] += String.format("%08d", num3);
    }
    scan.close();
    int maxSize = 32;
    for (int i = 0; i < maxSize; i++) {
      // 都为1，则为1
      if (b[0].charAt(i) == '1' && b[1].charAt(i) == '1') {
        c[0] += '1';
      } else {
        c[0] += '0';
      }

      if (b[0].charAt(i) == '1' && b[2].charAt(i) == '1') {
        c[1] += '1';
      } else {
        c[1] += '0';
      }
    }
    // 若两字符串相等，则输出1
    if (c[0].contentEquals(c[1])) {
      System.out.print("1");
    } else {
      System.out.print("0");
    }
  }
}
